﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using ExpertSystem.Domains;

namespace ExpertSystem.Interfaces
{
    
    public interface IConjunct
    {
        /// <summary>
        /// Может ли найдено значение коньюнкта
        /// </summary>
        /// <returns></returns>
        bool CanBeResolved();
        /// <summary>
        /// Значение возвращаемое коньюнктом
        /// </summary>
        /// <returns></returns>
        bool Value();

        //bool Activated();

        void Resolve();

        IVariable CanNotResolvedVariable();

        bool TryToResolve { get; }

        bool VarValueCorrect { get; }

        bool CanReturnTrueValue();

        List<IVariable> Variables { get; }

        string Description { get; }

        IFunction Function { get; }
    }
}
